<?php
    namespace app\admin\model;
    use think\Model;
    use think\Db;
    
//  model 类
    class AnnounceModel extends Model
    {
        const MESSAGEFIELDS= 'msg_id,title,content,remark,add_time,push_time,is_push';
        const BANNERFIELDS= 'banner_id,title,banner_img,add_time,describe,is_show';

        const BANNER_IMAGE_PATH='banner';
        public static function getBannerInfoById($id ,$field=''){
            if(!$id){
                return false;
            }

            if(!$field){
                $field=self::BANNERFIELDS;
            }
            $info=Db('banner')->field($field)->where('banner_id',$id)->find();

            return $info ? $info :false;
        }


        // 显示和隐藏 banner
        public function changeStatus($id=null,$status=null){

            if(is_null($id) || is_null($status)){
                return false;
            }

            $old_status=Db('banner')->where('banner_id',$id)->column('is_show');

            if($old_status[0] != $status){
                $res = Db('banner')->where('banner_id', $id)->update(['is_show' => $status]);

                if ($res) {
                    return true;
                }
            }

            return false;
        }

        public static function handleBannerInfo($info)
        {
            $info['banner_img']=get_image_url(AnnounceModel::BANNER_IMAGE_PATH,$info['banner_img']);
            return $info;
        }
        // 根据id 查询 message 信息
        public function getMessageInfoById($id){
            if(!$id){
                return false;
            }
            $info=Db('push_message')->field(self::MESSAGEFIELDS)->where('msg_id',$id)->find();
            return $info?$info:false;
        }

        // 保存草稿
        public function saveMessage($info){
            if(!$info){
                return false;
            }
            $info['add_time']=time();
            $info['is_push']=1;

            $res=Db('push_message')->insert($info);

            return $res?true:false;
        }

        public function updateMessage($info){
            if (!$info) {
                return false;
            }
            $info['add_time'] = time();
            $info['is_push'] = 1;

            $res = Db('push_message')->where('msg_id',$info['msg_id'])->update($info);

            return $res ? true : false;
        }

        public function deleteMessage($id)
        {
            if (!$id) {
                return false;
            }
            $status=Db('push_message')->where('msg_id', $id)->column('is_push');

            if($status[0] == 1){
                $res = Db('push_message')->where('msg_id', $id)->delete();
            }else{
                $res =false;
            }

            return $res;
        }

        // 推送消息之后，写入一条初始消息到 read_message表
        public function pushMessage($id){
            if(!$id){
                return false;
            }
            $status = Db('push_message')->where('msg_id', $id)->column('is_push');

            if($status[0] != 2){

               $res = Db('push_message')->where('msg_id', $id)->update(['is_push'=>2,'push_time'=>time()]);
                
                // $res=Db('read_message')->insert(['msg_id'=>$id,'user_id'=>0]);
                return $res;
            }else{
                return  false;
            }

        }
        

}

